@mixin shortcut-theme($theme) {
  $primary: map-get($theme, primary);
  $warn: map-get($theme, warn);
  $background: map-get($theme, background);
  $accent: map-get($theme, accent);
  $primary-color: map-get($primary, 500);

  $warn-color: map-get($warn, 500);
  $accent-color: map-get($accent, 500);
  $foreground: map-get($theme, foreground);
  $is-dark-theme: map-get($theme, is-dark);
  $back: map-get($background, background);

  $list-background-color: map-get($background, 300);
  $card-background-color: map-get($background, cards);
  $border-color: if($is-dark-theme, rgba(#8795a1, 0.2), rgba(#8795a1, 0.2));
  $border-selected-color: if($is-dark-theme, #fff, #000);

  .shortcut-container {
    width: 100%;
    margin: 0 25px 25px 0;
    display: inline-block;
    vertical-align: top;

    .shortcut-title-container {
      display: flex;
      align-items: center;

      h2 {
        text-transform: uppercase;
        font-size: 1.2rem;
      }

      .shortcut-btn {
        margin-left: 0.5rem;
      }
    }
  }

  .shortcut-list-row {
    display: grid;
    grid-template-columns: 1fr;
    grid-gap: 1rem;
    width: 100%;

    @media only screen and (min-width: 800px) {
      grid-template-columns: 1fr 1fr;
    }

    @media only screen and (min-width: 1200px) {
      grid-template-columns: 1fr 1fr 1fr;
    }

    .shortcut-list {
      border: 1px solid $border-color;
      min-height: 60px;
      background-color: $list-background-color;
      border-radius: 1rem;
      overflow: hidden;
      display: block;
      padding: 1rem;
    }
  }

  .shortcut-desc {
    align-self: center;
    font-size: 14px;
    margin-top: 0;
    text-align: center;
  }

  .shortcut-grid {
    border: 1px solid $border-color;
    min-height: 60px;
    background-color: $list-background-color;
    border-radius: 1rem;
    overflow: hidden;
    display: grid;
    grid-template-columns: 1fr;
    grid-gap: 1rem;
    padding: 1rem;

    @media only screen and (min-width: 800px) {
      grid-template-columns: 1fr 1fr;
    }

    @media only screen and (min-width: 1200px) {
      grid-template-columns: 1fr 1fr 1fr;
    }

    .shortcut-desc {
      align-self: center;
      font-size: 14px;
      margin-top: 0;
      text-align: center;
    }
  }

  .shortcut-box {
    padding: 1rem;
    color: map-get($foreground, text);
    display: flex;
    flex-direction: row;
    align-items: center;
    box-sizing: border-box;
    font-size: 14px;
    background-color: $card-background-color;
    border: 1px solid $border-color;
    border-radius: 1rem;
    margin: 1rem 0;
    text-decoration: none;

    &.edit-state {
      cursor: move;
    }

    &.disabled {
      cursor: not-allowed;
    }

    &:first-child {
      margin-top: 0;
    }

    &:last-child {
      margin-bottom: 0;
    }

    &.no-margin {
      margin: 0;
    }

    .shortcuts-avatar {
      flex-shrink: 0;
      height: 40px;
      width: 40px;
      margin-right: 1rem;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      background: linear-gradient(40deg, rgb(129, 85, 185) 30%, #7b8ada);

      &.purple {
        background: linear-gradient(40deg, #7c3aed 30%, #6d28d9);
      }

      &.red {
        background: linear-gradient(40deg, #dc2626 30%, #db2777);
      }

      &.green {
        background: linear-gradient(40deg, #059669 30%, #047857);
      }

      &.blue {
        background: linear-gradient(40deg, #3b82f6 30%, #4f46e5);
      }

      &.yellow {
        background: linear-gradient(40deg, #f59e0b 30%, #b45309);
      }

      &.black {
        background: linear-gradient(40deg, #1f2937, #111827);
      }

      .icon,
      i {
        font-size: 1.5rem;
        height: 1.2rem;
        line-height: 1.2rem;
        color: white;
      }

      .shortcuts-avatar-label {
        font-size: 18px;
        color: white;
      }
    }

    .shortcut-col {
      display: flex;
      flex-direction: column;

      .shortcut-item-desc {
        font-size: 13px;
        margin-top: 0.5rem;
      }
    }

    .fill-space {
      flex: 1;
    }

    .shortcut-state-dot {
      height: 8px;
      width: 8px;
      border-radius: 50%;
      margin-left: 1rem;
      flex-shrink: 0;

      &.active {
        background-color: var(--success);
      }

      &.inactive {
        background-color: var(--warn);
      }
    }
  }

  .available-shortcut-wrapper {
    border: 1px solid $border-color;
    border-radius: 1rem;
    padding: 1rem;

    .available-shortcut-list {
      display: grid;
      grid-template-columns: 1fr;
      grid-gap: 1rem;

      @media only screen and (min-width: 800px) {
        grid-template-columns: 1fr 1fr;
      }

      @media only screen and (min-width: 1200px) {
        grid-template-columns: 1fr 1fr 1fr;
      }

      .shortcut-box {
        margin: 0;
      }
    }
  }

  .cdk-drag-preview {
    box-sizing: border-box;
    border-radius: 1rem;
    border: 1px solid $border-color;
    box-shadow:
      0 5px 5px -3px rgba(0, 0, 0, 0.2),
      0 8px 10px 1px rgba(0, 0, 0, 0.14),
      0 3px 14px 2px rgba(0, 0, 0, 0.12);
  }

  .cdk-drag-placeholder {
    opacity: 0;
  }

  .cdk-drag-animating {
    transition: transform 250ms cubic-bezier(0, 0, 0.2, 1);
  }

  .shortcut-list.cdk-drop-list-dragging .shortcut-box:not(.cdk-drag-placeholder) {
    transition: transform 250ms cubic-bezier(0, 0, 0.2, 1);
  }
}
